package com.shujia.wyh.day01;

import com.shujia.wyh.utils.MySqlTool;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/*
    使用JDBC来查询mysql数据库中的数据
 */
public class JDBCTest5 {
    public static void main(String[] args) throws Exception {
        Connection conn = MySqlTool.getConnection();

        //获取操作数据库的对象
        Statement stat = conn.createStatement();

        //需求：查询dept表中的数据，并且将数据以自己想要的格式输出
        ResultSet resultSet = stat.executeQuery("select * from dept");
        //boolean next() throws SQLException;
        //获取查询结果中的下一行数据
        //将光标移动一个位子
//        boolean b = resultSet.next(); //移动光标并判断下一行是否有数据
////        System.out.println(b);
//        if (b) {
//            //如果b是true表示下一行是有数据的
//            //String getString(int columnIndex)
//            //这个检索的当前行中指定列的值 ResultSet对象为 String的Java编程语言。
//            //获取一行中对应列的数据
//            //columnIndex - 第一列是1，第二列是2，...
//            String deptno = resultSet.getString(1);
//            String dname = resultSet.getString(2);
//            String loc = resultSet.getString(3);
//            System.out.println("部门编号：" + deptno + ", 部门名称：" + dname + "，部门地址：" + loc);
//        }

        //由于我们上面next方法只调用了一次，只获取到一行，但是呢通常情况下，一个表中不止一行
        //也就意味着我要next()多次，但是又有一个问题，表中的行数不确定，所以将来next()的次数也不确定
        //所以用while循环，循环的条件就是next()的结果为true
        while (resultSet.next()) {
            //如果b是true表示下一行是有数据的
            //String getString(int columnIndex)
            //这个检索的当前行中指定列的值 ResultSet对象为 String的Java编程语言。
            //获取一行中对应列的数据
            //columnIndex - 第一列是1，第二列是2，...
            String deptno = resultSet.getString(1);
            String dname = resultSet.getString(2);
            String loc = resultSet.getString(3);
            System.out.println("部门编号：" + deptno + ", 部门名称：" + dname + "，部门地址：" + loc);
        }
        System.out.println("=====================================================");

//        while (resultSet.next()) {
//            //如果b是true表示下一行是有数据的
//            //String getString(int columnIndex)
//            //这个检索的当前行中指定列的值 ResultSet对象为 String的Java编程语言。
//            //获取一行中对应列的数据
//            //columnIndex - 第一列是1，第二列是2，...
//            String deptno = resultSet.getString(1);
//            String dname = resultSet.getString(2);
//            String loc = resultSet.getString(3);
//            System.out.println("部门编号：" + deptno + ", 部门名称：" + dname + "，部门地址：" + loc);
//        }


        stat.close();
        conn.close();


    }
}
